<?php

namespace app\test\controller;

use think\Controller;

class Before extends Controller{


    protected $beforeActionList = [
        'first',
        //ONE方法执行不调用second前置
        'second' => ['except'=>'one'],
        //third前置只能通过调用one和two方法触发
        'third' =>['only'=>'one,two'],
    ];

protected $flag = true;

    //封装起来，受保护的
    protected function first(){
        echo 'first<br/>';
    }
    protected function second(){
        echo 'second<br/>';
    }
    protected function third(){
        echo 'third<br/>';
    }
    

    //空方法拦截
//    当访问了一个不存在的方法时，系统会报错，我们可以使用_empty()来拦截
    public function _empty($name){
        return '此方法不存在：'.$name;
    }



    // 控制器的前置操作
    public function index(){
        //如果存在fla就执行
        if($this->flag){
            //如果不指定url，则返回$_SERVER['HTTP_REFERER]
            //返回上一层
            $this->success('注册成功！','../');
        }else{
            //自动返回上一页
            $this->error('失败！');
        }
        return 'index';
    }


    public function one(){
        return 'one';
    }
    public function two(){
        return 'two';
    }
}